package Interface

import (
	"github.com/golang/protobuf/proto"
	"net"
	"server5/protobuf"
)

//连接模块的抽象类
type IConnection interface {
	//启动连接 让当前的连接准备开始工作
	Start()
	//停止连接 结束当前连接的工作
	Stop()
	//获取socket conn
	GetTcpConnection() net.Conn
	//获取连接ID
	GetConnID() uint32
	//获取远程客户端的TCP状态 IP Port
	RemoteAddr() net.Addr
	//发送数据 将数据发送给远程的客户端
	SendMsg(msgType protobuf.MsgType, message proto.Message) error
	//读线程
	Reader()
	//写线程
	Writer()

	User() IUser
	SetUser(user IUser)
}
